package com.example.jdbcdemo.controller;

import com.alibaba.fastjson.JSON;
import com.example.jdbcdemo.mapper.ProductMapper;
import com.example.jdbcdemo.pojo.Product;
import com.example.jdbcdemo.service.ProductServiceInterface;
import com.example.jdbcdemo.utils.JsonUtil;
import com.example.jdbcdemo.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/product")
public class ProductController {
    @Autowired
    private ProductMapper productMapper;
    @Autowired
    ProductServiceInterface productServiceInterface;

    /**
     * 查询全部商品
     * @return 返回状态码，提示信息，商品的列表
     */
    @PostMapping("/queryProductList")
    public Result<List<Product>> queryProductList(){
        List<Product> productList=productMapper.queryProductList();
        return Result.success(productList);
    }

    /**
     * 新增商品
     * @param product 新的产品对象
     * @return 返回状态码，提示信息
     */
    @PostMapping("/addproduct")
    public Result addProduct(@RequestBody Product product){
        productMapper.addProduct(product);
        return Result.success();
    }

    /**
     * 根据id删除商品
     * @return 返回状态码，提示信息
     */
    @PostMapping("/deleteproduct")
    public Result deleteProduct(@RequestBody Product product){
        productMapper.deleteProduct(product.getId());
        return Result.success();
    }

    /**
     * 修改商品
     * @param product 修改后的产品对象
     * @return 返回状态码，提示信息
     */
    @PostMapping("/updateproduct")
    public Result updateProduct(@RequestBody Product product){
        productMapper.updateProduct(product);
        return Result.success();
    }

    @PostMapping("/queryProductById")
    public JsonUtil queryProductById(@RequestBody Map<String,Integer> map){
        return new JsonUtil(0,"查询成功", JSON.toJSONString(productServiceInterface.queryProductById(map.get("productId"))));
    }
}
